package com.growthserver.service;

import com.growthserver.entity.TTaskComboEntity;
import com.growthserver.entity.TTaskInfoEntity;
import com.growthserver.entity.TTaskRuleEntity;
import com.growthserver.param.TTaskComboParam;
import com.growthserver.param.TaskInfoParam;
import com.growthserver.param.TaskInfoUserParam;
import com.growthserver.param.TaskNumUserParam;
import com.growthserver.vo.TTaskComboVo;
import com.growthserver.vo.TaskInfoVo;

import java.util.HashMap;
import java.util.List;

public interface TaskCenterService {

    /**
     * 检测是否可以创建规则
     */
    boolean checkRule(TaskInfoVo taskInfoVo);
    /**
     * 创建任务
     */
    void createTaskCenter(TaskInfoVo taskInfoVo);

    /**
     * 任务展示列表
     * @param taskCenterParams
     * @return
     */
    List<TTaskInfoEntity> taskDisplay(TaskInfoParam taskCenterParams);

    void  updateTask(TTaskInfoEntity tTaskInfoEntity);

    void upDownTask(String taskStatus,String taskId);

    void upDownTaskNum(String isEnable,String taskId);

    /**
     *
     */
    List<TTaskComboEntity> taskNumDisplay(TTaskComboParam tTaskComboParam);

    void deleteTaskNum(String taskId);

    /**
     *
     * @param tTaskComboParam
     */
    List<HashMap<String,String>> getUserMemberInfo(TTaskComboParam tTaskComboParam);

    /**
     * 单个任务规则详情查看
     * @param taskId
     * @return
     */
    List<TTaskRuleEntity> selectTaskRules(String taskId);

    /**
     * 任务删除
     * @param taskId
     */
    void deleteTask(String taskId);

    /**
     * 新建社区任务
     * @param tTaskComboVo
     */
    void createTaskNum(TTaskComboVo tTaskComboVo);
    void updateTaskNum(TTaskComboEntity tTaskComboEntity);

    List<TaskInfoUserParam> taskDisplayByUser(String userId);

    TaskNumUserParam taskDisplayByUserNum(String userId);
}
